
#ifndef __GOTO_LINE_PANEL_H__
#define __GOTO_LINE_PANEL_H__

#include <glib.h>
#include <glib-object.h>
#include <gtksourceview/gtksourceview.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include "doc_panel_base.h"

G_BEGIN_DECLS


#define TYPE_GO_TO_LINE_PANEL (go_to_line_panel_get_type ())
#define GO_TO_LINE_PANEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GO_TO_LINE_PANEL, GoToLinePanel))
#define GO_TO_LINE_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GO_TO_LINE_PANEL, GoToLinePanelClass))
#define IS_GO_TO_LINE_PANEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GO_TO_LINE_PANEL))
#define IS_GO_TO_LINE_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GO_TO_LINE_PANEL))
#define GO_TO_LINE_PANEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GO_TO_LINE_PANEL, GoToLinePanelClass))

typedef struct _GoToLinePanel GoToLinePanel;
typedef struct _GoToLinePanelClass GoToLinePanelClass;
typedef struct _GoToLinePanelPrivate GoToLinePanelPrivate;

struct _GoToLinePanel {
	DocPanelBase parent_instance;
	GoToLinePanelPrivate * priv;
};

struct _GoToLinePanelClass {
	DocPanelBaseClass parent_class;
	gboolean (*on_show_panel) (GoToLinePanel* self);
};


GoToLinePanel* go_to_line_panel_construct (GType object_type, GtkSourceBuffer** source_buff, GtkSourceView** source_view);
GoToLinePanel* go_to_line_panel_new (GtkSourceBuffer** source_buff, GtkSourceView** source_view);
gboolean go_to_line_panel_on_show_panel (GoToLinePanel* self);
gboolean go_to_line_panel_on_goto_line (GoToLinePanel* self, GtkSpinButton* sender, const GdkEventKey* event);
GType go_to_line_panel_get_type (void);


G_END_DECLS

#endif
